# coding=utf-8
"""
Author: Mr.夏末
@Function: 快速排序
"""
weight = [185, 175, 165, 190, 180, 185, 170, 175, 160, 165, 155, 150, 145, 140, 135, 130, 200, 120, 195, 165, 100, 185]
# weight = [4, 1, 9, 7, 2, 5, 6, 8, 10, 3]


def quicksort(weight, left, right):
    """
    快速排序的函数
    :param weight:列表
    :param left:列表的左边
    :param right:快排列表的右边
    :return:
    """
    # 去最右边为基准
    base = weight[right]
    # 指针初始位置
    l = left
    h = right
    while l < h:
        # 一轮交换
        # 只要l还在h的左边，就一直循环
        while l < h:
            # 从左往右找到比基准大的
            if weight[l] > base:
                # 交换到h位置
                weight[l], weight[h] = weight[h], weight[l]
                h -= 1
                break
            else:
                # 如果没找到就继续找
                l += 1

        while l < h:
            # 从右往左找到比基准小的
            if weight[h] < base:
                # 交换到l位置
                weight[l], weight[h] = weight[h], weight[l]
                l += 1
                break
            else:
                # 如果没找到就继续找
                h -= 1
    #递归调用：直到所有部分都只剩下一个或者0个元素
    if l - 1 -left >0:
        # 对左边剩下的元素进行递归
        quicksort(weight,left,l-1)

    if right - h -1 > 0:
        # 对右边剩下的元素进行递归
        quicksort(weight, h+1, right)

quicksort(weight, 0, len(weight) - 1)
print(weight)

print("----------------------------------------------------------------")
# 写一个模块，完成以下功能：
# 函数功能：传入一个字符串（回文字符串）,先判断是否刚好是对称的两部分,如果是，返回字符串相反的两部分，不是返回False
def palindrome(x:str):
    """
    :param x: 目标字符串
    :return: 相反的两部分|False
    """
    # 使用一个变量之前，先判断它是否为空（None，0，''，[]，{}，()）
    if x and x == x[::-1]:
        l = len(x)
        # 偶数长度
        if l % 2 == 0:
            return x[0:l//2],x[l//2:]
        else:
            return x[0:l//2 + 1],x[l//2:]
    else:
        # 非回文字符串，直接返回False
        return False

x = input("请输入一个字符串：")
print(palindrome(x))